part of '../repository.dart';

abstract class EmailChangeFailure extends Failure {
  const EmailChangeFailure();
}

class UnauthorizedEmailChangeFailure extends EmailChangeFailure {
  const UnauthorizedEmailChangeFailure();
}

class EmailVerificationEmailChangeFailure extends EmailChangeFailure {
  const EmailVerificationEmailChangeFailure({
    required this.emailVerificationCodeFound,
    this.emailVerificationCodeCorrect,
    this.emailVerificationCodeExpired,
    this.emailVerificationCodeSubmissionAttemptsOver,
  });

  final bool emailVerificationCodeFound;
  final bool? emailVerificationCodeCorrect;
  final bool? emailVerificationCodeExpired;
  final bool? emailVerificationCodeSubmissionAttemptsOver;
}

class AlreadyExistingUserEmailChangeFailure extends EmailChangeFailure {
  const AlreadyExistingUserEmailChangeFailure();
}

class ServerEmailChangeFailure extends EmailChangeFailure {
  const ServerEmailChangeFailure();
}

class NetworkEmailChangeFailure extends EmailChangeFailure {
  const NetworkEmailChangeFailure();
}
